A trusted platform module (“TPM”) generally is a microcontroller that can store secure information within a computer system or device built into a chipset. A TPM offers facilities for generation of cryptographic keys, the ability to limit the use of keys, as well as a random number generator. The keys may include keys such as an Endorsement Key or a Storage Root Key that allows secure access to the computer system to minimize risks of losing or compromising important information from hacking, viruses, worms, and the like.
The purpose of a TPM is to keep sensitive information out of memory and the control of software. When a virtual machine monitor, such as a hypervisor is implemented on a computing device, the TPM needs to be virtualized to allow each virtual machine access to it. However, this typically brings the sensitive information of the TPM into general purpose system memory and under the control of software.